0 CpxTRS
↳1 TrsToWeightedTrsProof (BOTH BOUNDS(ID, ID), 0 ms)
↳2 CpxWeightedTrs
↳3 TypeInferenceProof (BOTH BOUNDS(ID, ID), 0 ms)
↳4 CpxTypedWeightedTrs
↳5 CompletionProof (UPPER BOUND(ID), 0 ms)
↳6 CpxTypedWeightedCompleteTrs
↳7 NarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳8 CpxTypedWeightedCompleteTrs
↳9 CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID), 0 ms)
↳10 CpxRNTS
↳11 InliningProof (UPPER BOUND(ID), 59 ms)
↳12 CpxRNTS
↳13 SimplificationProof (BOTH BOUNDS(ID, ID), 0 ms)
↳14 CpxRNTS
↳15 CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID), 0 ms)
↳16 CpxRNTS
↳17 IntTrsBoundProof (UPPER BOUND(ID), 242 ms)
↳18 CpxRNTS
↳19 IntTrsBoundProof (UPPER BOUND(ID), 9 ms)
↳20 CpxRNTS
↳21 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳22 CpxRNTS
↳23 IntTrsBoundProof (UPPER BOUND(ID), 782 ms)
↳24 CpxRNTS
↳25 IntTrsBoundProof (UPPER BOUND(ID), 224 ms)
↳26 CpxRNTS
↳27 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳28 CpxRNTS
↳29 IntTrsBoundProof (UPPER BOUND(ID), 360 ms)
↳30 CpxRNTS
↳31 IntTrsBoundProof (UPPER BOUND(ID), 38 ms)
↳32 CpxRNTS
↳33 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳34 CpxRNTS
↳35 IntTrsBoundProof (UPPER BOUND(ID), 301 ms)
↳36 CpxRNTS
↳37 IntTrsBoundProof (UPPER BOUND(ID), 65 ms)
↳38 CpxRNTS
↳39 FinalProof (⇔, 0 ms)
↳40 BOUNDS(1, n^1)
rev_l#2(x8, x10) → Cons(x10, x8)
step_x_f#1(rev_l, x5, step_x_f(x2, x3, x4), x1) → step_x_f#1(x2, x3, x4, rev_l#2(x1, x5))
step_x_f#1(rev_l, x5, fleft_op_e_xs_1, x3) → rev_l#2(x3, x5)
foldr#3(Nil) → fleft_op_e_xs_1
foldr#3(Cons(x16, x6)) → step_x_f(rev_l, x16, foldr#3(x6))
main(Nil) → Nil
main(Cons(x8, x9)) → step_x_f#1(rev_l, x8, foldr#3(x9), Nil)
rev_l#2(x8, x10) → Cons(x10, x8) [1]
step_x_f#1(rev_l, x5, step_x_f(x2, x3, x4), x1) → step_x_f#1(x2, x3, x4, rev_l#2(x1, x5)) [1]
step_x_f#1(rev_l, x5, fleft_op_e_xs_1, x3) → rev_l#2(x3, x5) [1]
foldr#3(Nil) → fleft_op_e_xs_1 [1]
foldr#3(Cons(x16, x6)) → step_x_f(rev_l, x16, foldr#3(x6)) [1]
main(Nil) → Nil [1]
main(Cons(x8, x9)) → step_x_f#1(rev_l, x8, foldr#3(x9), Nil) [1]
rev_l#2(x8, x10) → Cons(x10, x8) [1]
step_x_f#1(rev_l, x5, step_x_f(x2, x3, x4), x1) → step_x_f#1(x2, x3, x4, rev_l#2(x1, x5)) [1]
step_x_f#1(rev_l, x5, fleft_op_e_xs_1, x3) → rev_l#2(x3, x5) [1]
foldr#3(Nil) → fleft_op_e_xs_1 [1]
foldr#3(Cons(x16, x6)) → step_x_f(rev_l, x16, foldr#3(x6)) [1]
main(Nil) → Nil [1]
main(Cons(x8, x9)) → step_x_f#1(rev_l, x8, foldr#3(x9), Nil) [1]
rev_l#2 :: Cons:Nil → a → Cons:Nil Cons :: a → Cons:Nil → Cons:Nil step_x_f#1 :: rev_l → a → step_x_f:fleft_op_e_xs_1 → Cons:Nil → Cons:Nil rev_l :: rev_l step_x_f :: rev_l → a → step_x_f:fleft_op_e_xs_1 → step_x_f:fleft_op_e_xs_1 fleft_op_e_xs_1 :: step_x_f:fleft_op_e_xs_1 foldr#3 :: Cons:Nil → step_x_f:fleft_op_e_xs_1 Nil :: Cons:Nil main :: Cons:Nil → Cons:Nil |
(a) The obligation is a constructor system where every type has a constant constructor,
(b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols:
step_x_f#1
main
foldr#3
rev_l#2
const
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
rev_l => 0
fleft_op_e_xs_1 => 0
Nil => 0
const => 0
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 1 }→ 1 + 0 + x16 + foldr#3(x6) :|: z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 0, 0) :|: x8 >= 0, z = 1 + x8 + 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 1 + 0 + x16' + foldr#3(x6'), 0) :|: z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + x10 + x8 :|: z = x8, x8 >= 0, z' = x10, x10 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ step_x_f#1(x2, x3, x4, 1 + x5 + x1) :|: x5 >= 0, x4 >= 0, x1 >= 0, z'' = 1 + x2 + x3 + x4, z1 = x1, z' = x5, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 1 }→ rev_l#2(x3, x5) :|: z'' = 0, x5 >= 0, z' = x5, z1 = x3, z = 0, x3 >= 0
rev_l#2(z, z') -{ 1 }→ 1 + x10 + x8 :|: z = x8, x8 >= 0, z' = x10, x10 >= 0
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 1 }→ 1 + 0 + x16 + foldr#3(x6) :|: z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 0, 0) :|: x8 >= 0, z = 1 + x8 + 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 1 + 0 + x16' + foldr#3(x6'), 0) :|: z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + x10 + x8 :|: z = x8, x8 >= 0, z' = x10, x10 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ step_x_f#1(x2, x3, x4, 1 + x5 + x1) :|: x5 >= 0, x4 >= 0, x1 >= 0, z'' = 1 + x2 + x3 + x4, z1 = x1, z' = x5, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + x10 + x8 :|: z'' = 0, x5 >= 0, z' = x5, z1 = x3, z = 0, x3 >= 0, x3 = x8, x8 >= 0, x5 = x10, x10 >= 0
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 1 }→ 1 + 0 + x16 + foldr#3(x6) :|: z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 1 + 0 + x16' + foldr#3(x6'), 0) :|: z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 2 }→ step_x_f#1(0, z - 1, 0, 0) :|: z - 1 >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + z' + z :|: z >= 0, z' >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ step_x_f#1(x2, x3, x4, 1 + z' + z1) :|: z' >= 0, x4 >= 0, z1 >= 0, z'' = 1 + x2 + x3 + x4, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + z' + z1 :|: z'' = 0, z' >= 0, z = 0, z1 >= 0
{ rev_l#2 } { step_x_f#1 } { foldr#3 } { main } |
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 1 }→ 1 + 0 + x16 + foldr#3(x6) :|: z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 1 + 0 + x16' + foldr#3(x6'), 0) :|: z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 2 }→ step_x_f#1(0, z - 1, 0, 0) :|: z - 1 >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + z' + z :|: z >= 0, z' >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ step_x_f#1(x2, x3, x4, 1 + z' + z1) :|: z' >= 0, x4 >= 0, z1 >= 0, z'' = 1 + x2 + x3 + x4, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + z' + z1 :|: z'' = 0, z' >= 0, z = 0, z1 >= 0
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 1 }→ 1 + 0 + x16 + foldr#3(x6) :|: z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 1 + 0 + x16' + foldr#3(x6'), 0) :|: z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 2 }→ step_x_f#1(0, z - 1, 0, 0) :|: z - 1 >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + z' + z :|: z >= 0, z' >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ step_x_f#1(x2, x3, x4, 1 + z' + z1) :|: z' >= 0, x4 >= 0, z1 >= 0, z'' = 1 + x2 + x3 + x4, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + z' + z1 :|: z'' = 0, z' >= 0, z = 0, z1 >= 0
rev_l#2: runtime: ?, size: O(n1) [1 + z + z'] |
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 1 }→ 1 + 0 + x16 + foldr#3(x6) :|: z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 1 + 0 + x16' + foldr#3(x6'), 0) :|: z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 2 }→ step_x_f#1(0, z - 1, 0, 0) :|: z - 1 >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + z' + z :|: z >= 0, z' >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ step_x_f#1(x2, x3, x4, 1 + z' + z1) :|: z' >= 0, x4 >= 0, z1 >= 0, z'' = 1 + x2 + x3 + x4, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + z' + z1 :|: z'' = 0, z' >= 0, z = 0, z1 >= 0
rev_l#2: runtime: O(1) [1], size: O(n1) [1 + z + z'] |
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 1 }→ 1 + 0 + x16 + foldr#3(x6) :|: z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 1 + 0 + x16' + foldr#3(x6'), 0) :|: z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 2 }→ step_x_f#1(0, z - 1, 0, 0) :|: z - 1 >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + z' + z :|: z >= 0, z' >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ step_x_f#1(x2, x3, x4, 1 + z' + z1) :|: z' >= 0, x4 >= 0, z1 >= 0, z'' = 1 + x2 + x3 + x4, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + z' + z1 :|: z'' = 0, z' >= 0, z = 0, z1 >= 0
rev_l#2: runtime: O(1) [1], size: O(n1) [1 + z + z'] |
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 1 }→ 1 + 0 + x16 + foldr#3(x6) :|: z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 1 + 0 + x16' + foldr#3(x6'), 0) :|: z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 2 }→ step_x_f#1(0, z - 1, 0, 0) :|: z - 1 >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + z' + z :|: z >= 0, z' >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ step_x_f#1(x2, x3, x4, 1 + z' + z1) :|: z' >= 0, x4 >= 0, z1 >= 0, z'' = 1 + x2 + x3 + x4, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + z' + z1 :|: z'' = 0, z' >= 0, z = 0, z1 >= 0
rev_l#2: runtime: O(1) [1], size: O(n1) [1 + z + z'] step_x_f#1: runtime: ?, size: O(n1) [1 + z' + z'' + z1] |
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 1 }→ 1 + 0 + x16 + foldr#3(x6) :|: z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 1 + 0 + x16' + foldr#3(x6'), 0) :|: z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 2 }→ step_x_f#1(0, z - 1, 0, 0) :|: z - 1 >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + z' + z :|: z >= 0, z' >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ step_x_f#1(x2, x3, x4, 1 + z' + z1) :|: z' >= 0, x4 >= 0, z1 >= 0, z'' = 1 + x2 + x3 + x4, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + z' + z1 :|: z'' = 0, z' >= 0, z = 0, z1 >= 0
rev_l#2: runtime: O(1) [1], size: O(n1) [1 + z + z'] step_x_f#1: runtime: O(n1) [2 + 2·z''], size: O(n1) [1 + z' + z'' + z1] |
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 1 }→ 1 + 0 + x16 + foldr#3(x6) :|: z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 4 }→ s' :|: s' >= 0, s' <= 1 * (z - 1) + 1 * 0 + 1 * 0 + 1, z - 1 >= 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 1 + 0 + x16' + foldr#3(x6'), 0) :|: z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + z' + z :|: z >= 0, z' >= 0
step_x_f#1(z, z', z'', z1) -{ 4 + 2·x4 }→ s :|: s >= 0, s <= 1 * x3 + 1 * x4 + 1 * (1 + z' + z1) + 1, z' >= 0, x4 >= 0, z1 >= 0, z'' = 1 + x2 + x3 + x4, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + z' + z1 :|: z'' = 0, z' >= 0, z = 0, z1 >= 0
rev_l#2: runtime: O(1) [1], size: O(n1) [1 + z + z'] step_x_f#1: runtime: O(n1) [2 + 2·z''], size: O(n1) [1 + z' + z'' + z1] |
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 1 }→ 1 + 0 + x16 + foldr#3(x6) :|: z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 4 }→ s' :|: s' >= 0, s' <= 1 * (z - 1) + 1 * 0 + 1 * 0 + 1, z - 1 >= 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 1 + 0 + x16' + foldr#3(x6'), 0) :|: z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + z' + z :|: z >= 0, z' >= 0
step_x_f#1(z, z', z'', z1) -{ 4 + 2·x4 }→ s :|: s >= 0, s <= 1 * x3 + 1 * x4 + 1 * (1 + z' + z1) + 1, z' >= 0, x4 >= 0, z1 >= 0, z'' = 1 + x2 + x3 + x4, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + z' + z1 :|: z'' = 0, z' >= 0, z = 0, z1 >= 0
rev_l#2: runtime: O(1) [1], size: O(n1) [1 + z + z'] step_x_f#1: runtime: O(n1) [2 + 2·z''], size: O(n1) [1 + z' + z'' + z1] foldr#3: runtime: ?, size: O(n1) [z] |
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 1 }→ 1 + 0 + x16 + foldr#3(x6) :|: z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 4 }→ s' :|: s' >= 0, s' <= 1 * (z - 1) + 1 * 0 + 1 * 0 + 1, z - 1 >= 0
main(z) -{ 2 }→ step_x_f#1(0, x8, 1 + 0 + x16' + foldr#3(x6'), 0) :|: z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + z' + z :|: z >= 0, z' >= 0
step_x_f#1(z, z', z'', z1) -{ 4 + 2·x4 }→ s :|: s >= 0, s <= 1 * x3 + 1 * x4 + 1 * (1 + z' + z1) + 1, z' >= 0, x4 >= 0, z1 >= 0, z'' = 1 + x2 + x3 + x4, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + z' + z1 :|: z'' = 0, z' >= 0, z = 0, z1 >= 0
rev_l#2: runtime: O(1) [1], size: O(n1) [1 + z + z'] step_x_f#1: runtime: O(n1) [2 + 2·z''], size: O(n1) [1 + z' + z'' + z1] foldr#3: runtime: O(n1) [1 + z], size: O(n1) [z] |
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 2 + x6 }→ 1 + 0 + x16 + s'' :|: s'' >= 0, s'' <= 1 * x6, z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 4 }→ s' :|: s' >= 0, s' <= 1 * (z - 1) + 1 * 0 + 1 * 0 + 1, z - 1 >= 0
main(z) -{ 7 + 2·s1 + 2·x16' + x6' }→ s2 :|: s1 >= 0, s1 <= 1 * x6', s2 >= 0, s2 <= 1 * x8 + 1 * (1 + 0 + x16' + s1) + 1 * 0 + 1, z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + z' + z :|: z >= 0, z' >= 0
step_x_f#1(z, z', z'', z1) -{ 4 + 2·x4 }→ s :|: s >= 0, s <= 1 * x3 + 1 * x4 + 1 * (1 + z' + z1) + 1, z' >= 0, x4 >= 0, z1 >= 0, z'' = 1 + x2 + x3 + x4, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + z' + z1 :|: z'' = 0, z' >= 0, z = 0, z1 >= 0
rev_l#2: runtime: O(1) [1], size: O(n1) [1 + z + z'] step_x_f#1: runtime: O(n1) [2 + 2·z''], size: O(n1) [1 + z' + z'' + z1] foldr#3: runtime: O(n1) [1 + z], size: O(n1) [z] |
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 2 + x6 }→ 1 + 0 + x16 + s'' :|: s'' >= 0, s'' <= 1 * x6, z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 4 }→ s' :|: s' >= 0, s' <= 1 * (z - 1) + 1 * 0 + 1 * 0 + 1, z - 1 >= 0
main(z) -{ 7 + 2·s1 + 2·x16' + x6' }→ s2 :|: s1 >= 0, s1 <= 1 * x6', s2 >= 0, s2 <= 1 * x8 + 1 * (1 + 0 + x16' + s1) + 1 * 0 + 1, z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + z' + z :|: z >= 0, z' >= 0
step_x_f#1(z, z', z'', z1) -{ 4 + 2·x4 }→ s :|: s >= 0, s <= 1 * x3 + 1 * x4 + 1 * (1 + z' + z1) + 1, z' >= 0, x4 >= 0, z1 >= 0, z'' = 1 + x2 + x3 + x4, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + z' + z1 :|: z'' = 0, z' >= 0, z = 0, z1 >= 0
rev_l#2: runtime: O(1) [1], size: O(n1) [1 + z + z'] step_x_f#1: runtime: O(n1) [2 + 2·z''], size: O(n1) [1 + z' + z'' + z1] foldr#3: runtime: O(n1) [1 + z], size: O(n1) [z] main: runtime: ?, size: O(n1) [z] |
foldr#3(z) -{ 1 }→ 0 :|: z = 0
foldr#3(z) -{ 2 + x6 }→ 1 + 0 + x16 + s'' :|: s'' >= 0, s'' <= 1 * x6, z = 1 + x16 + x6, x6 >= 0, x16 >= 0
main(z) -{ 4 }→ s' :|: s' >= 0, s' <= 1 * (z - 1) + 1 * 0 + 1 * 0 + 1, z - 1 >= 0
main(z) -{ 7 + 2·s1 + 2·x16' + x6' }→ s2 :|: s1 >= 0, s1 <= 1 * x6', s2 >= 0, s2 <= 1 * x8 + 1 * (1 + 0 + x16' + s1) + 1 * 0 + 1, z = 1 + x8 + (1 + x16' + x6'), x8 >= 0, x6' >= 0, x16' >= 0
main(z) -{ 1 }→ 0 :|: z = 0
rev_l#2(z, z') -{ 1 }→ 1 + z' + z :|: z >= 0, z' >= 0
step_x_f#1(z, z', z'', z1) -{ 4 + 2·x4 }→ s :|: s >= 0, s <= 1 * x3 + 1 * x4 + 1 * (1 + z' + z1) + 1, z' >= 0, x4 >= 0, z1 >= 0, z'' = 1 + x2 + x3 + x4, z = 0, x2 >= 0, x3 >= 0
step_x_f#1(z, z', z'', z1) -{ 2 }→ 1 + z' + z1 :|: z'' = 0, z' >= 0, z = 0, z1 >= 0
rev_l#2: runtime: O(1) [1], size: O(n1) [1 + z + z'] step_x_f#1: runtime: O(n1) [2 + 2·z''], size: O(n1) [1 + z' + z'' + z1] foldr#3: runtime: O(n1) [1 + z], size: O(n1) [z] main: runtime: O(n1) [4 + 3·z], size: O(n1) [z] |